AndroidPizza
Expression de besoin, User Stories et découpage technique
L'expression de besoin
Nous souhaitons permettre aux clients de notre pizzeria de commander par l'intermédiaire d'une application sur leur smartphone, afin de limiter les appels à notre standard.
Les commandes ainsi reçues pourront être gérées par notre système informatique actuel.
Le client doit d'abord pouvoir consulter la liste des pizzas et des autres produits (boissons, desserts), avec à chaque fois le prix et une photo.
Nous proposons une pizza spéciale dont le prix et les ingrédients varient chaque semaine.
Le client doit pouvoir cocher les produits qu'il souhaite, en précisant éventuellement leur quantité. Ensuite, il pourra valider le résumé de sa commande, renseigner son adresse et procéder au paiement par CB.
Notre gestionnaire de commande pourra lui indiquer automatiquement l'heure de sa livraison.
Enfin, si le client est un habitué, il pourra garder son adresse enregistrée et ses pizzas favorites pour faciliter ses futures commandes.
Analyse de l'expression de besoin
Résumé de l'expression de besoin
Il s'agit d'abord de résumer sans extrapoler l'expression de besoin.
Catégories
L'expression de besoin regroupe plusieurs catégories de fonctionnalités :
- Catalogue : affichage des différentes catégories de produits
- Panier : ajout, quantité
- Commande : validation, paiement, adresse, message
On peut résumer le principe essentiel de l'application ainsi :
Une application qui permet de commander et se faire livrer des pizzas.
Les rôles
L'expression de besoin différencie 2 types d'utilisateurs :
- Le client
- Le client habitué
Incohérences et exhaustivité
Il s'agit de détecter les éléments qui nécessitent des précisions.
- Notion de client habitué : à priori identique au client, sauf qu'il n'en est pas à sa première utilisation.
- Affichage catalogue : quantité de produits ? de familles de produits ?
- Mise à jour du catalogue : fréquence ?
- Aspects techniques : communication avec le système existant ?
Rédaction des Users-Stories
Les rôles
- utilisateur
Les fonctionnalités
Catalogue
CATALOG 001 En tant qu'utilisateur, je consulte la dernière carte mise à disposition par le magasin.
CATALOG 002 En tant qu'utilisateur, je peux consulter la liste des produits pizzas. Précision : chaque pizza est composée d'une photo, d'un nom, d'une liste d'ingrédients et d'un prix.
CATALOG 003 En tant qu'utilisateur, je peux consulter la liste des produits desserts. Précision : chaque produit est composée d'une photo, d'un nom, d'une description et d'un prix.
CATALOG 004 En tant qu'utilisateur, je peux consulter la liste des produits boissons. Précision : chaque produit est composée d'une photo, d'un nom et d'un prix.
CATALOG 005 En tant qu'utilisateur, je peux changer de catégorie de produits (pizzas/desserts/boissons).
Panier
CART 001 En tant qu'utilisateur, je peux sélectionner (cocher) les produits.
CART 002 En tant qu'utilisateur, je peux changer la quantité de chaque produit sélectionné (defaut 1).
CART 003 En tant qu'utilisateur, je peux valider mon panier si il contient au moins 1 produit.
Commande
ORDER 001 En tant qu'utilisateur, une fois validée, je peux consulter le résumé des produits et le tarif total de la commande.
ORDER 002 En tant qu'utilisateur, une fois validée, je peux annuler ma commande.
ORDER 003 En tant qu'utilisateur, une fois validée, je peux confirmer ma commande en précisant mes informations de paiement Paypal.
ORDER 004 En tant qu'utilisateur, une fois validée, je peux confirmer ma commande en précisant mes informations de paiement CB.
ORDER 005 En tant qu'utilisateur, une fois validée, je dois indiquer ou modifier mon adresse de livraison.
ORDER 006 En tant qu'utilisateur, une fois validée, je peux faire détecter mon adresse automatiquement grace au GPS.
ORDER 007 En tant qu'utilisateur, une fois validée, je peux utiliser la dernière adresse de livraison que j'ai entrée.
ORDER 008 En tant qu'utilisateur, une fois confirmée, je peux voir le résultat de ma commande avec l'heure estimée de livraison ou un message d'échec.
Priorisation
Après discution et validation, l'objectif est de prioriser les US pour la prochaine phase de développement qui donnera lieu à une livraison : le sprint.
Must have
CATALOG 002 En tant qu'utilisateur, je peux consulter la liste des produits pizzas. Précision : chaque pizza est composée d'une photo, d'un nom, d'une liste d'ingrédients et d'un prix.
CART 001 En tant qu'utilisateur, je peux sélectionner (cocher) les produits.
CART 003 En tant qu'utilisateur, je peux valider mon panier si il contient au moins 1 produit.
ORDER 001 En tant qu'utilisateur, une fois validée, je peux consulter le résumé des produits et le tarif total de la commande.
CATALOG 001 En tant qu'utilisateur, je consulte la dernière carte mise à disposition par le magasin.
Should have
ORDER 002 En tant qu'utilisateur, une fois validée, je peux annuler ma commande.
ORDER 005 En tant qu'utilisateur, une fois validée, je dois indiquer ou modifier mon adresse de livraison.
ORDER 008 En tant qu'utilisateur, une fois confirmée, je peux voir le résultat de ma commande avec l'heure estimée de livraison ou un message d'échec.
Could have
ORDER 003 En tant qu'utilisateur, une fois validée, je peux confirmer ma commande en précisant mes informations de paiement Paypal.
CART 002 En tant qu'utilisateur, je peux changer la quantité de chaque produit sélectionné. Par défaut : 1.
Won't have
CATALOG 003 En tant qu'utilisateur, je peux consulter la liste des produits desserts. Précision : chaque produit est composée d'une photo, d'un nom, d'une description et d'un prix.
CATALOG 004 En tant qu'utilisateur, je peux consulter la liste des produits boissons. Précision : chaque produit est composée d'une photo, d'un nom et d'un prix.
CATALOG 005 En tant qu'utilisateur, je peux changer de catégorie de produits (pizzas/desserts/boissons).
ORDER 007 En tant qu'utilisateur, une fois validée, je peux utiliser la dernière adresse de livraison que j'ai entrée.
ORDER 004 En tant qu'utilisateur, une fois validée, je peux confirmer ma commande en précisant mes informations de paiement CB.
ORDER 006 En tant qu'utilisateur, une fois validée, je peux faire détecter mon adresse automatiquement grace au GPS.
Le sprint
Les US prioritaires sont découpés et estimés, jusqu'a trouver le nombre d'heures de travail disponible dans le sprint (selon sa durée et le nombre de participants).
Exemple 1 : 1 semaine avec 1 developpeur : 5*7h = 35h.
Exemple 2 : 2 semaines avec 3 développeurs : 35h par semaine et par personne, soit 210h au total.
CATALOG 002
En tant qu'utilisateur, je peux consulter la liste des produits pizzas. Précision : chaque pizza est composée d'une photo, d'un nom, d'une liste d'ingrédients et d'un prix.
Taches techniques
- Création / initialisation du projet : Eclipse, GIT. 1h
- Création de l'Activity avec une ListView. 1h
- Classe "Pizza", "PizzaListDaoInterface", "PizzaListDaoMock". 2h
- Adapteur List<Pizza> -> ListView. 2h
- View : affichage d'une pizza dans la liste. 4h
- SOUS TOTAL : 10h
CART 001
En tant qu'utilisateur, je peux sélectionner (cocher) les produits.
Taches techniques
- View : selection d'une pizza dans la liste. 2h
- Création classe "Order" contenant une List
, remplie par la selection dans la vue. 3h - SOUS TOTAL : 5h
CART 003
En tant qu'utilisateur, je peux valider mon panier si il contient au moins 1 produit.
Taches techniques
- Modifier activity List : affiche le bouton quand l'Order contient un produit. 2h
- SOUS TOTAL : 2h
ORDER 001
En tant qu'utilisateur, une fois validée, je peux consulter le résumé des produits et le tarif total de la commande.
Taches techniques
- Création de l'activity RecapOrder et son layout. 2h
- Afficher le contenu de l'Order passé à l'activity. 2h
- Afficher le prix total de l'Order. 1h
- SOUS TOTAL : 5h
CATALOG 001
En tant qu'utilisateur, je consulte la dernière carte mise à disposition par le magasin.
- Etudier l'API du système de commande existant. 4h
- Créer le PizzaListDaoReal : requête de récupération des données en JSON si disponibles. 2h
- PizzaListDaoReal : Parsing du JSON pour créer la List<Pizza> (avec tests-unitaires). 4h
- PizzaListDaoReal : sauvegarde et lecture en local de la liste de Pizza (sérialisation). 4h
- Utilisation du PizzaListDaoReal dans l'activity List. 1h
- SOUS TOTAL : 15h
Développement
TOTAL pour ces 5 users stories : 37h, théoriquement de quoi occuper le développeur pendant le sprint d'une semaine.
Le principe ici est de donner des réponses technique aux problemes fonctionnels des US séléctionnés et seulement ceux la.
Les points positifs
- Pendant le temps du sprint, les autres US ont le temps de changer. Tant qu'ils ne sont pas selectionnés dans un sprint, ils ont le droit de changer.
- Le chiffrage de l'app est plus réaliste car il s'applique à des petites taches.
- L'archi de l'application évolue avec les besoins réels.
- Motivation de la résolution des taches.